package SimplePractice;

import util.ListNode;

/*
 * 给你两个单链表的头节点 headA 和 headB ，请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点，返回 null 
 * */

public class Demo160 {
	
	public static void main(String[] args){
		System.out.println(getIntersectionNode(null, null));
	}
	
	private static ListNode getIntersectionNode(ListNode headA, ListNode headB) {
		
		ListNode p = headA;
		ListNode q = headB;
		
		
		//此处不要用p.next判断null然后接到另一个表
		//因为会导致无限循环
		
		//用p判断null然后接到另一个表会多走一步null节点，这样两边都是null，反而就可以跳出循环
		while(p != q) {
			
			if(p != null)
				p = p.next;
			else
				p = headB;
			
			if(q != null)
				q = q.next;
			else
				q = headA;
			
		}
		
		return p;
        
    }

}
